﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Controller;

namespace QLKS
{
    public partial class frmCheckInChild2 : Form
    {


        public string MaNV { get; set; }
        public int MaKH { get; set; }
        public string maPhong { get; set; }
        public int flag = 0;
        Controller_CheckIn cont_checkin = new Controller_CheckIn();
        Controller_Room cont_room = new Controller_Room();

        public frmCheckInChild2()
        {
            InitializeComponent();
            Date_NgayDat.Value = DateTime.Now;
            Date_NgayTra.Value = DateTime.Now;
        }
        public frmCheckInChild2(string maNV, int maKH,string maPhong)
        {
            InitializeComponent();
            MaNV = maNV;
            MaKH = maKH;
            this.maPhong = maPhong;
            
        }

        public frmCheckInChild2(int ngay, int thang, int nam, string maphong, string maNV, int maKH, string maPhong)
        {
            InitializeComponent();
            MaNV = maNV;
            MaKH = maKH;
            this.maPhong = maPhong;
            string date = ngay + "/" + thang + "/" + nam;
            Date_NgayDat.Text = date;
            Date_NgayTra.Value = Date_NgayDat.Value;
            GetListRoomType();
            cmb_GioDat.SelectedIndex = 0;
            cmb_PhutDat.SelectedIndex = 0;
            cmb_GioTra.SelectedIndex = 23;
            cmb_PhutTra.SelectedIndex = 0;
        }

 

        private void btn_Close_Click(object sender, EventArgs e)
        {
            FrmCheckIn obj = (FrmCheckIn)this.ParentForm;
            obj.CloseForm();
        }

        private void btn_Back_Click(object sender, EventArgs e)
        {
            FrmCheckIn obj = (FrmCheckIn)this.ParentForm;
            obj.PreviousTab();
        }

        private void btn_Finish_Click(object sender, EventArgs e)
        {
            
            if (flag != 1)
            {
                MessageBox.Show("Chưa Lưu thông tin. Vui Lòng lưu thông tin","Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.None);
                return;
            }
            else
                MessageBox.Show("Chuyển sang Mục Thông tin khách hàng","Thông báo",MessageBoxButtons.OK,MessageBoxIcon.Information);
            FrmCheckIn obj = (FrmCheckIn)this.ParentForm;
            obj.CallForm();
             
        }

        private void frmCheckInChild2_Load(object sender, EventArgs e)
        {
            
            GetListRoomType();
            //doTinhGiaTien();
            load_ListsStatusRoom();
        }

        private void load_ListsStatusRoom()
        {
            string ngayDat = Date_NgayDat.Value.ToShortDateString();
            string ngayTra = Date_NgayTra.Value.ToShortDateString();
            DataSet ds = cont_room.TrangthaiPhong(ngayDat, ngayTra);
            if (ds.Tables.Count != 0)
                dgvTrangThaiphong.DataSource = ds.Tables[0];
        }

        private void btn_SaveTab2_Click(object sender, EventArgs e)
        {
            if (doCheckInfo() == false)
            {   
                return;
            }
            string maHD = txtMaHoaDon.Text;
            int slPhong = (int)num_SLPhong.Value;
            string ngayDat = Date_NgayDat.Value.ToShortDateString();
            string ngayTra = Date_NgayTra.Value.ToShortDateString();
            int slNguoiLon = (int)num_SLNguoiLon.Value;
            int slTreEm = (int)num_SLTreEm.Value;
            string tongTien = txtGia.Text.ToString();
            string datTruoc = txtDatCoc.Text.ToString();
            if (cont_checkin.Check_in(maHD, maPhong, slPhong, ngayDat, ngayTra, slNguoiLon, slTreEm, MaNV, datTruoc, MaKH, tongTien) == true)
            {
                MessageBox.Show("Thêm thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                flag = 1;
            }
            else
            {
                MessageBox.Show("Không thêm đc. Vui lòng kiểm tra lại","Thông báo",MessageBoxButtons.OK,MessageBoxIcon.Warning);
            }

        }

        /// <summary>
        /// Kiểm tra thông tin nhập vào
        /// </summary>
        /// <returns>true</returns>
        public bool doCheckInfo() {
            if (txtMaHoaDon.Text.Trim() == "")
            {
                txtMaHoaDon.Focus();
                MessageBox.Show("Chưa nhập Mã hóa đơn", "Nhập thiếu", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            TimeSpan ngay = Date_NgayTra.Value.Date - Date_NgayDat.Value.Date;
            int songay = (int)ngay.TotalDays;
            if (songay <= 0)
            {
                MessageBox.Show("Ngày Trả phải khác ngày đặt", "Nhập sai", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            if (((int)num_SLNguoiLon.Value + (int)num_SLTreEm.Value) == 0)
            {
                MessageBox.Show("Số khách phải khác 0", "Nhập sai", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            if (((int)num_SLPhong.Value) == 0)
            {
                MessageBox.Show("Số Phòng phải khác 0", "Nhập sai", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            return true;
        }
        
        public void GetListRoomType()
        {
            DataTable dtRoom = cont_room.ListRoomType().Tables[0];
            cmb_LoaiPhong.DataSource = dtRoom;
            cmb_LoaiPhong.DisplayMember = "TypeName";
            cmb_LoaiPhong.ValueMember = "Cost";
        }

        private void num_SLPhongDon_ValueChanged(object sender, EventArgs e)
        {
            doTinhGiaTien();
        }

        private void doTinhGiaTien()
        {
            TimeSpan ngay = Date_NgayTra.Value.Date - Date_NgayDat.Value.Date;
            int songay = (int)ngay.TotalDays;
            double giaPhong =0;
            if (cmb_LoaiPhong.Text != "System.Data.DataRowView")
                giaPhong = double.Parse(cmb_LoaiPhong.SelectedValue.ToString()) * double.Parse(num_SLPhong.Value.ToString()) * songay;
            txtGia.Text = giaPhong.ToString();
        }

        private void cmb_LoaiPhong_DropDownClosed(object sender, EventArgs e)
        {
            doTinhGiaTien();
        }

        private void btnTinhTien_Click(object sender, EventArgs e)
        {
            doTinhGiaTien();
        }

        private void txtGia_TextChanged(object sender, EventArgs e)
        {
            double datCoc = double.Parse(txtGia.Text.ToString()) * 20 / 100;
            txtDatCoc.Text = datCoc.ToString();
        }

        private void btnGetDS_Click(object sender, EventArgs e)
        {
            load_ListsStatusRoom();
        }

        private void dgvTrangThaiphong_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            String value = "";
            int r = e.RowIndex;
            try
            {
                value = (String)e.Value.ToString().TrimEnd();
            }
            catch (Exception)
            {
            }
            if (value.CompareTo("Đã đặt") == 0)
            {
                //e.CellStyle.BackColor = Color.PaleGreen; 
                dgvTrangThaiphong.Rows[r].DefaultCellStyle.BackColor = Color.Orange;
            }
        }

        private void dgvTrangThaiphong_ColumnAdded(object sender, DataGridViewColumnEventArgs e)
        {
            if (e.Column.Index == 0)
            {
                e.Column.Width = 30;
            }
            else if (e.Column.Index == 1)
            {
                e.Column.Width = 70;
            }
            else
            {
                e.Column.Width = 100;
            }
        }


    }
}
